根據正規化定義
每一筆資料列皆要有能夠識別一致多個欄位組合是唯一
主索引鍵就是用來識別資料列的鍵值
主索引鍵特性
主索引鍵資料形態越小越好
今天設計一個縣市的資料表
目前縣市總數不會超過 256 個
該資料表的主索引鍵資料型態選擇 TINYINT 就會比較適合
先來檢視身分證字號儲存資料的定義
戶政系統規劃:每個人都會有自己唯一的身分證字號
常識理解身分證字號是不會重複
但現實往往就是會遇到重複的資料(通常是手動輸入錯誤)
先前就處理過身份證字號一堆重複
結果客戶要求唯一條件變更為身分證字號與出生日期
這一變更資料庫的關聯都需要進行異動
有打算使用身分證字號建立資料表的主索引鍵
透過額外建立一個數字欄位作為主索引鍵 (primary-key)
然後將身分證字號欄位設定成唯一限制 (unique)
會是個比較有彈性的選擇